package zhongbo.java.air.dictionary.service;

import zhongbo.java.air.common.vo.PageVo;
import zhongbo.java.air.dictionary.model.entities.AirPort;

/**
 * 机场信息服务接口
 *
 * @author WeiJin
 * @version 1.0
 * @date 2025/3/31 11:12
 */
public interface IAirPortService {
    /**
     * 保存机场信息到数据库
     *
     * @param airPort 机场信息
     * @return 返回保存的机场信息
     */
    AirPort saveAirPort(AirPort airPort);

    /**
     * 根据id删除机场信息
     *
     * @param id id
     * @return 被删除的机场id
     */
    String delAirPort(String id);

    /**
     * 修改机场信息
     *
     * @param airPort 前端传递过来的修改信息
     * @return 修改后的机场信息
     */
    AirPort modifyAirPort(AirPort airPort);

    /**
     * 根据机场id查询机场信息
     *
     * @param id 机场id
     * @return 机场信息
     */
    AirPort queryById(String id);

    /**
     * 分页查询机场信息
     *
     * @param pageNumber 页码
     * @param pageSize   每页记录数
     * @param name       机场全称
     * @param status     状态
     * @param orderBy    排序字段
     * @param orderType  排序类型，true升序 false降序
     * @return 机场分页信息
     */
    PageVo<AirPort> pageAirPort(Integer pageNumber, Integer pageSize, String name,
                                String status, String orderBy, Boolean orderType);

    /**
     * 根据icaoCode或iataCode查询 机场信息
     * @param icaoCode 机场代码
     * @param iataCode IATA代码
     * @return 机场信息
     */
    AirPort queryByIcaoCodeOrIataCode(String icaoCode,String iataCode);
}
